跳到主要内容

地图

地图提供一种快速绘制精灵的方式,通过精灵图块拼接图像,每个地图块为8x8像素的精灵大小。

mget

mget(X, Y)

mset

mset(X, Y, VAL)

查询或者设置地图坐标X,Y的数据,如果X,Y越界,查询返回0。

地图数据是16位整数,通常用来表示精灵的索引号。

map

map(TILE_X, TILE_Y, [SX, SY], [TILE_W, TILE_H], [LAYERS])

在屏幕区域SX,SY位置,开始绘制地图,地图区域启始位置位TILE_X,TILE_Y,宽度TILE_W,高度TILE_H。

例子: 绘制4x2的地图块到屏幕坐标20,20。

map(0, 0, 20, 20, 4, 2)

TILE_W / TILE_H 默认为最大地图宽高。

例子: map() 和 camera() 配合使用,让精灵图块始终位于屏幕中央。

camera(PL.X - __vm_width, PL.Y - __vm_height)
map()

LAYERS 是bit位定义的功能。如果有此参数,那么只有精灵属性数据对应bit位置有效是,才会绘制。

例如LAYERS=0x5,那么精灵数据属性bit0或者bit2为1的精灵才会被绘制。

精灵编号为0的图块默认不会被绘制。

tline

tline(X0, Y0, X1, Y1, MX, MY, [MDX, MDY], [LAYERS])

从X0,Y0到X1,Y1绘制纹理线,纹理从map采样,如果LAYERS参数有效,那么只有精灵数据属性对应匹配的才会被采样绘制(同map())。

MX,MY 是对应的map数据的采样的启始点,以图块为单位,像素数据从图块对应的8x8的精灵图像上进行采集。

例如:

2.0, 1.0 表示从地图2,1位置对应的精灵的左上角开始

2.5, 1.5 表示从精灵的中间(4,4)开始

MDX,MDY 表示采样时对mx,my的增量间隔,每绘制一个像素,mx,my 会增加mdx,mdy。(缺省 0.125, 0, 表示x方向增加一个像素,y方向不变)

地图坐标 (MX, MY) 可以配置掩码来进行循环。

例如: 水平方向8个图块循环,垂直方向4个区块循环。

statctl('tlmw',8)
statctl('tlmh',4)
tline(...)

缺省 (0,0) 表示256个块循环。

也可以设置图块的起始偏移量:

statctl('tlmx',OFFSET_X)
statctl('tlmy',OFFSET_Y)

和map一样,编号0的精灵不会被采样绘制。